home *** CD-ROM | disk | FTP | other *** search
/ Software 2000 / Software 2000 Volume 1 (Disc 1 of 2).iso / utilities / u155.dms / in.adf / Alpha_QDOS_TXT < prev    next >
Encoding:
Text File  |  1988-01-20  |  19.7 KB  |  417 lines

  1.           QDOS for the AMIGA
  2.           ------------------
  3.  
  4. 1) Introduction and motivation
  5. ------------------------------
  6.  
  7. I have bought my first QL at 1984 in Berlin, and since this time the
  8. QL has proofed to be a very handy tool for all kind of computer work.
  9. But unfortunately this computer was not very popular, it was difficult
  10. to get anything (software and hardware) for the QL, and without the
  11. usergroup, I would have given up very early. With the advent of the
  12. ATARI 520 ST and the increasing popularity of the IBM clones the
  13. QL became more and more uninteresting for new users, and Sinclair
  14. lost interest in the computer himself.
  15. So far so bad, but after checking the possible alternatives, there
  16. was actually no computer which was really much better than the QL.
  17. So the Idea came up to build a new computer with 68000 CPU and
  18. a reasonable keyboard. But why building a new computer, when you
  19. can buy one ?
  20. For this purpose the AMIGA seemed to be best suited. It is
  21. highly expandable and has many hardware features allready on board.
  22. Furthermore, it seemed to be more easy to emulate the QL screen
  23. on the AMIGA, than on the ATARI.
  24.  
  25.  
  26.  
  27. 2) What has been done up to now
  28. -------------------------------
  29.  
  30. The gamma version was made from a disassembly of the JS-ROM,
  31. which was expanded in some features and testet on the QL.
  32. The QL-screen emulation is performed using the Blitter, which
  33. makes it a very fast process, costing nearly no CPU time.
  34. The keyboard is emulated in most features (including Ctrl-Alt-7)
  35. and Keyrow (using the IPC) is working on all programs.
  36. Additionaly a default trap handler has been installed, which will
  37. tell you what happend at what address, and return to SuperBASIC.
  38. The program must be assembled on the QL using the GST macro assembler.
  39. NO OTHER assembler can be used (I have tested some Amiga assembler,
  40. but there is no Assembler, which has a linker and is really bug free.
  41. The best result gave the Atztec-C assembler. It was able to assemble
  42. all files, but the linker crashed the system when attempting to link the
  43. QDOS file.)
  44. Apart from the MicroDriVes and the NETwork all standard QL devices are
  45. implemented: CON_ , SCR_ , PIPE_ , SER1 , PAR , FLPn_ . The RAMdisks are
  46. running too, but it is only included in the ! Friends only Version !
  47. The clock should run too, if you use the system routines.
  48. The T.Tebby toolkit is working also, when TAS instructions are replaced.
  49. * Additionally in This Version  (3.01) a JANus device driver is  included
  50. * which allows you to use the Harddisk from the IBM Sidecar.
  51. ** A FLoPpy driver accomplishes the system in this release (3.03)
  52. ** The Amiga mouse is integrated, QRAM (pointer interface) and MPAINT
  53. ** have proofed to work correctly with it.
  54.  
  55. Disks supplied:
  56. Version 3.03 comes on 3 disks:
  57. Disk 1 is a Amiga BOOT disk, it contains this document (Alpha_QDOS_TXT)
  58.        an introduction to QDOS (QDOS_INTRO) an old description for the
  59.        RK00 Version (RK00_INFO) and the QDOS system, ready to BOOT.
  60.        Additionally, some Programs for File transfer and other utilities
  61.        are included in executable and source form.
  62. Disk 2 is in QDOS format and contains the Assembler source for QDOS.
  63.        This Disk should be copied using INDEX synchronization 
  64.        and nibble mode or the QDOS DISKCOPY.
  65. Disk 3 is also in QDOS format and contains some Utilities and patched
  66.        programs. Specifically programs to support Filetransfer,
  67.        TAS replacing and using the PROSPERO compilers.
  68.  
  69. NOTE ! if you give this Disk to other persons, please copy all 3 disks !
  70. If you possess a "Friends only" version, then delete the Files
  71. TOOLKIT_CDE and MIXTOOL_CDE and change the startup-sequence accordingly
  72. before giving this Disk to others.
  73.  
  74.  
  75. Files supplied:
  76.  
  77. QDOS                          The complete running QDOS
  78. TKamiga_CDE                   The T.Tebby toolkit without TAS instructions
  79.                               !!! Friends only !!!
  80. MIXTOOL_CDE                   A combined toolkit including EDITOR
  81.                               and RAMdisk and QMON and Qliberator
  82.                               runtime library
  83.                               !!! Friends only !!!
  84. QL_EXTRA                      batch file to start the QL-emulator
  85.                               in fast memory
  86.  
  87. startup_emulator              batch-file to start the QDOS 512k system
  88. AllocAbs                      used to allocate Memory
  89. Lbytes                        used to load files into memory
  90. Load_Qdos                     This programm moves QDOS from $30000
  91.                               to $00000, sets the clock and memory
  92.                               boundaries. The full format is:
  93.                               Load_Qdos RAMbottom RAMtop SSP
  94.                               All addresses are hex numbers,
  95.                               where RAMbottom and RAMtop should lie
  96.                               in Fast memory, and no care must be taken
  97.                               about Amigados. SSP is the Supervisor
  98.                               Stackpointer and must lie outside the
  99.                               scratch area between RAMbottom and RAMtop
  100. SerQl                         A filetransfer program which can be used
  101.                               to send files from the QL to the Amiga
  102.                               via the serial port. The Handshake lines
  103.                               must be connected for this.
  104.                               Allthough the programm works correct on
  105.                               the Amiga side, it may be difficuld to
  106.                               send files from the Amiga to the QL.
  107.                               I had not the time to search for the
  108.                               reason, but i think the Problem must
  109.                               be the QC compiler on the QL.
  110.                               You can transfer files from the Amiga
  111.                               to the QL nevertheless by sending them
  112.                               with the Amiga SERQL and receiving them
  113.                               with
  114.                               COPY SER2hr to RAM1_hilf
  115.                               and removing the additional bytes in a text
  116.                               editor.
  117.                               Note, that you MUST use the Ramdisk for
  118.                               long files on BOTH computers.
  119.  
  120. SRC/SerQL.C                   Amiga version of SERQL (Aztec C)
  121. SRC/SerQL_C                   QL version of SERQL (QC)
  122.  
  123. SRC/Load_QDOS.ASM             (use Aztec C assembler)
  124. flp2_TAS_replacer_BAS         Superbasic program to replace the
  125.                               TAS instructions in any program.
  126.  
  127. flp1_JAN_ASM                  janus device driver source, QL side
  128. JAN_CDE                       janus device driver binary, QL side
  129. PC/QLDISK.PAS                 Turbo pascal source for IBM part
  130. PC/QLDISK.COM                 compiled version (TURBO 3.0 !)
  131. PC/AUTOEXEC.BAT               example for IBM
  132.  
  133. flp2_QLTRA_BAS                file transfer program QL->QLamiga, source
  134. flp2_QLTRA_OBJ                compiled version (4800 BAUD  !!!)
  135.  
  136.  
  137.  
  138. 3) Known Bugs !!!
  139. -----------------
  140.  
  141. To Start with the hardest one: The Amiga hardware does not allow
  142. the CPU to get two contigues bus cycles. This means, that any
  143. read - modify - write cycle is dammed to fail.  More precise:
  144. the TAS instruction does not work ! neither in Chip nor in Fast memory !
  145. To get around this problem, the line $F... emulator was programed
  146. to emulate the TAS instruction. Now you just need to run TAS_replacer_BAS
  147. on any program which contains TAS instructions to replace them by
  148. the appropriate line $F... instruction.
  149. So far, so good, but the sideeffect may be as follows:
  150. One day you want to give a program to a friend with a normal QL.
  151. If your program needs a library, which contains TAS instructions,
  152. then it will now contain line $F... instructions. On a normal QL
  153. this will cause a total system crash. Thats it !
  154.  
  155. The Next Bug is perhaps correlated with this. The RAMdisk (QRAM)
  156. can not be formatted correctly, although i have applied TAS_replacer_BAS
  157. to it. This should not bother you too much, since you can still use it.
  158. But if you try to use the Qliberator compiler with an unformatted
  159. RAMdisk, you may have some trouble. Just try some other RAMdisks.
  160. !!! The RAMdisk is only included on the friends only Version !!!
  161.  
  162. ** The obscure Memory Management Bugs are fixed in this Version (3.03)
  163.  
  164. For those, who want to program amiga hardware under QDOS, I want to
  165. give one essential hint:
  166. Interrupts and DMA are very very very critical. You MUST enable your
  167. interrupts directly after starting QDOS.
  168. You should never disable interrupts in INTENA. Use 'OR #$0700,SR' instead.
  169. You should reset interrupt requests only once and only those which
  170. really have occured.
  171. If you fail to do so, then NOTHING will work, even if you don't need
  172. interrupts !
  173.  
  174. A last remark must be made upon the keyboard. You should try to buy a
  175. computer in Germany with an English keyboard. Hopeless !
  176. This stupid selling staff can not imagine, that not everybody who buys
  177. a computer is a secretary which needs ä,ö,ü in the proper place.
  178. So you have always the pleasure to search for @,[,],{,},_,Y,Z and many
  179. other commonly used keys. But this does only bother those, which
  180. must write programs for computers, and not the so called "User"
  181. which is a much better, this means richer, person.
  182. Okay, what i want to tell you is, that the keyboard emulation is only
  183. good for German Amigas and not for English Amigas.
  184. For the first time you can use ALTKEY to redifine some keys.
  185. But over a long range you have to change the QLASC... tables
  186. in the QDOS_ASM file and generate a new QDOS version.
  187. The sideffect is, that KEYROW may contain some minor inconsistencies.
  188.  
  189. * The keyboard emulation has proofed to fail on certain keyboards.
  190. * This Bug should be fixed now !
  191.  
  192. * The Ctrl-C , Ctrl-spc , Ctrl-F5 'bug' is fixed  now !
  193.  
  194. If you have fixed a bug, I will be greatfull when you can send me the
  195. corrected SOURCES or inform me about the reasons.
  196.  
  197. 4) New standards
  198. ----------------
  199.  
  200. (Read also RK00_INFO !)
  201. Changes to the System variables:
  202.  
  203. $28002              Flag byte, now contains the following flags:
  204.                      Bit 0 : 0 => OPEN path enable
  205.                      Bit 1 : 0 => OV error disable
  206.                      Bit 2 : 1 => No clearing of memory on MM.ALCHP
  207.  
  208. $28003              Is the contents of CIA-A ICR, updated by interrupt
  209.                     from the Keyboard server. The new value is ORed to
  210.                     the old one.
  211.  
  212. $280A2              in previous versions this was the Caps lock routine
  213.                     address. Since this was never used, i have changed
  214.                     its meaning. It is now a long word offset to the
  215.                     system clock. should not bother you.
  216.  
  217. $280F2              Priority increment of the QL screen emulator.
  218.                     the following byte is increased by 2*contents
  219.                     of this byte, if the result is negative, the
  220.                     next plane (green or red) is updated.
  221.                     Default is 20dez. This will not cost any CPU time.
  222.                     A value of 80dez. will cost 20% CPU time,
  223.                     and a value of 127dez. will cost 30% CPU time.
  224.                     If you set this byte to zero, then the emulation
  225.                     is switched of after the next vertical blank int.
  226.  
  227. $280F3              actual QL screen emulator priority.
  228.                     This byte should be set to zero too, when switching
  229.                     off the screen emulation.
  230.  
  231. $280F4              Address of Blitter interrupt server.
  232.                     If you have switched off the QL screen emulation,
  233.                     you must wait until this Long word contains 0.
  234.                     Afterwards you can link in your own server for
  235.                     Blitter interrupts here.
  236.  
  237. Any program which needs the Amiga hardware interrupts can use
  238. the old MT.LXINT system call. This now handles all interrupts
  239. except the Blitter, Keyboard  and 50 Hz interrupt.
  240. You must read the INTREQ register by your own to decide what to do.
  241. If it was the interrupt you was waiting for, you have to reset it by
  242. your own. You will get the CPU with all interrupts masked out, and
  243. you should not change this status.
  244.  
  245. * The Amiga bitplanes are starting at $18000.
  246. ** The Floppy controller uses the Memory from $10000  on.
  247. * Additional bitplanes can claim the Memory between $14000 - $17FFF.
  248.  
  249. ****************************************************************
  250.  
  251. * 5) The JANus device driver
  252. * ---------------------------
  253. In the Gamma release, you had no possibility to save or load
  254. programs from a permanent medium. In the Beta release, I had
  255. included a very simple directory device driver which enables you to
  256. use the IBM-harddisk on the Bridgeboard. Of course you can make
  257. use of this program only, if you posses the IBM bridgeboard (sidecar)
  258. and a  Harddisk in one of the IBM compatible slots.
  259. (But the floppy on the  IBM will give you  at least 360K.)
  260. The JANus devicedriver expects the program QLDISK.COM running on
  261. the IBM side. This program is also included in source format (QLDISK.PAS)
  262. and must be compiled with TURBO pascal 3.0 !
  263. any filename has the form:         JAN1_name_ext
  264. where 1[,2,3,4,5,6,7,8] has no function.
  265. The extension is converted from _ext  to .ext automatically.
  266. Names consist  of capital letters only and must not be longer than 8
  267. characters.
  268. Subdirectories and file conventions of MS-DOS are used.
  269. If you try to read MS-DOS files from QDOS, you will experience some
  270. trouble, since QDOS needs a 64 byte fileheader, which is of course
  271. not present in MS-DOS files. The other way around, you will find
  272. 64 additional bytes at the top of any QDOS file, when you try to read
  273. QDOS files from the  IBM side.
  274. additional BASIC extensions:
  275. CHDIR "path"                  changes the  subdirectory path (CD on IBM)
  276. MKDIR "name"                  make subdirectory (MKDIR on IBM)
  277. RMDIR "name"                  remove subdirectory (RMDIR on IBM)
  278. SHODIR                        display the actual path at channel #1
  279. JAN_USE "abc"                 set up a new device name for JAN (eg MDV)
  280.  
  281. For transfer of files between the QL and QDOS on the amiga you
  282. can use the program QLTRA_BAS or QLTRA_OBJ.
  283. This program transferes a complete disk.
  284. Up to now you should not try to operate  on more than 4800 Baud.
  285. It is  also essential, that  you don't type anything on the keyboard
  286. while files are transfered. This is because interrupts from the serial
  287. port are disabled while processing the keyboard interrupts.
  288.  
  289. ** Access of MS-DOS files is possible in the new Version using
  290. ** a filename which contains a 'commercial at @' (eg. D:\@AUTOEXEC.BAT)
  291. ** A backwards searchlist is established, which scans all parent directories
  292. ** for OPEN old file QDOS calls 
  293. ****************************************************************
  294. ****************************************************************
  295. Version 3.03 comes with a floppy device driver for QDOS floppies.
  296. This device driver is not the fastest one, and there are lots of
  297. bugs, but for the first time you can use it.
  298. The Format of a QDOS filename on the floppydisk is FLPn_name_ext.
  299. Where FLPn_ is the device name. FLP1_ stands for DF0:, FLP2_ for DF1:
  300. and so on (sorry, QDOS convention was first). Filenames can consist of
  301. up to 32 characters. The *D2D random access convention is emulated in
  302. full scale, so that CP/M and MS-DOS emulator should work.
  303. Additional extensions:
  304. DISKCOPY
  305.    make a track to track copy from FLP1_ to FLP2_
  306.    You should use DISKCOPY instead of FORMATing a Disk, since
  307.    Formating a Disk takes 8 minutes !
  308. RQDISK drive,side,track
  309.    Read one Track from a drive to the Trackbuffer ($10000) and
  310.    convert from MFM to ASCII
  311.  
  312. Bugs and Hints:
  313.  
  314. Again the hardest Bug first:
  315. You can read QDOS disks and write files on Disk, and do everything
  316. like on the QL. But when you try to read a Disk which was written on
  317. the Amiga using a normal QL, you will not be able to read anything !
  318. This is because the CRC calculation routine in my driver does not
  319. work correct. I have tested every possible combination, but i couln't
  320. find the bug. If you are able to fix it, please let me know!
  321.  
  322. Some combination of Floppy drives have proofed to give unreadable
  323. Disks. This depends much on the drives of your Amiga AND the drives
  324. of your QL. Up to now, my Amiga was able to read every QDOS disk,
  325. but a friend had trouble to read the same disks.
  326.  
  327. A little hint:
  328. Normally QDOS scatters the sectors of adjencent blocks on different
  329. sides of one disk. This doesn't matter with a WD1770, but it makes reading
  330. a Disk on the Amiga unneccessary slow. You can gain a factor of 3 in spped,
  331. when you FORMAT a Disk on the Amiga (afterwards just make a DISKCOPY from
  332. this Disk) and copy the files from the original QDOS Disk to the Amiga disk.
  333.  
  334. *************************************************************
  335.  
  336. 6) What has to be done next
  337. ----------------------------
  338.  
  339. These are the most important things to do, but unfortunately
  340. I don't have enough time to do this all by myself. I am writing
  341. my doctor thesis in Physics, and this will cost most of my time.
  342. So I am looking for people who are interested in this project
  343. and are able and willing to do some work for it.
  344. I think, it is best you contact me to get information about a specific
  345. part of the project. So you can avoid to invent the wheel a second
  346. time. You can reach me by post mail:
  347. Rainer Kowallik, Eisackstr. 14, 1000 Berlin(W) 62 (Germany)
  348. By Phone:
  349. (Germany) 030 855 866 5
  350. By EAN mail
  351. Kowallik@vax@hmi@dbp.de              or in the new form:
  352. S=KOWALLIK;OU=VAX;P=HMI;A=DBP;C=DE
  353.  
  354. ALL PROGRAMS HAVE TO HAVE THE FORMAT OF A STANDARD QL-ROM.
  355. NO OTHER INTERFACE THAN A ROM TOOLKIT SHOULD BE USED !
  356.  
  357. Subject                                              programmer
  358. -------------------------------------------------------------------------
  359. A program which stores the RAM disk as reset       |
  360. resistent memory block and restore the RAM disk    |
  361. from a memory block.                               |
  362. A corresponding programm on the Amiga side to      |
  363. store files from any device to a resident          |
  364. memory block and vice versa.                       |
  365. -------------------------------------------------------------------------
  366. An adaption of the Toolkit network server which    |
  367. uses the CD bit of the serial port (CIA-B, PRA #5) |
  368. The transmission speed should be changeble         |
  369. -------------------------------------------------------------------------
  370. A device driver for the Harddisk DH0, using        |
  371. subdirectories and fileformat of Amigados          |
  372. -------------------------------------------------------------------------
  373. New SCR_ and CON_ drivers which can use all        |
  374. features of the Amiga (32 colours, extra halfbright|
  375. Interlace, overscan)                               |
  376. -------------------------------------------------------------------------
  377.  
  378.  
  379.  
  380. 7) What can be done after this ?
  381. --------------------------------
  382.  
  383. Now, we need for example a programm to read Amiga files on QDOS
  384. and QDOS files on Amiga dos.
  385. It would be nice to have access to the sound generator.
  386. An EPROM version which can switch to QDOS at startup time could
  387. be interesting.
  388. QDOS should be made 68010/68020 compatible.
  389. ...
  390.  
  391. 8) Copyright statement :
  392. ------------------------
  393.  
  394. Since I have really spend much time on develloping this QDOS emulator,
  395. I think that it is not imoral to claim this emulator as my program.
  396. Nevertheless QDOS and the related names are protected by the ones
  397. who have now the rights (is it sinclair again, or amstrad, or t.tebby
  398. or who or what ?)
  399. But this should not stop you from spreading this disk, as long as you
  400. are shure, that no commercial use is made from all that stuff.
  401. I am shure, that these  programs are only interesting for people
  402. who have or have had a QL or THOR, and so have allready paid for this
  403. software. Those who are working with these programs and don't posses
  404. a QL are invited to buy a second hand QL or so.
  405.  
  406. 9) Acknoledgement
  407. -----------------
  408.  
  409. Thanks to
  410. Wolfgang Schroeder and Joern Ryba for discussion,
  411. Boris Jakubith and Mathias Leidig for the CRC generator,
  412. Andreas Ihlenfeld for his Keyrow MT.IPCOM
  413.  
  414.  
  415.  
  416. and you for your interest.
  417.